Модуль tracing¶
Модуль tracing используется для трассировки пользовательских функций.
Модуль для этой роли имеет имя app.roles.tracing.
Чтобы использовать роль внутри пользовательской функции, выполните require('app.roles.tracing').
Узнать больше о модуле трассировки можно в репозитории tarantool/tracing.
tracing.start_span(context, name, opts)¶
Инициировать новый сегмент (span) трассировки. Используется для обозначения начала отслеживаемого кода.
Параметры:
- context– текущий контекст для трассировки запросов:- trace_id– идентификатор трассировки, к которой будет принадлежать сегмент;
- span_id– идентификатор сегмента, который будет использован как идентификатор родительского сегмента;
- sample– нужно ли трассировать запрос с помощью текущего и дочерних сегментов;
- baggage– дополнительные данные текущего сегмента трассировки;
 
- name(string) – название сегмента трассировки;
- opts– дополнительные параметры для создания сегмента трассировки:- tags– таблица тегов, которые будут добавлены к создаваемому сегменту;
- start_timestamp– время начала сегмента в микросекундах с начала эпохи.
 
Возвращает: объект span
Возвращаемый тип: object
Пример¶
Если контекст трассировки еще не был инициализирован, передайте первым аргументом в start_span() переменную для контекста (ctx),
которая содержит пустую таблицу.
В последующих вызовах передайте ту же переменную с текущим контекстом трассировки.
local ctx = {}
local span_1 = tracing.start_span(ctx, 'test_1')
local span_2 = tracing.start_span(ctx, 'test_2')
-- ...
Если передается контекст из клиента, создайте таблицу с ключами trace_id, span_id и sample.
local ctx = {
    trace_id = 'trace_id',
    span_id = 'span_id',
    sample = true,
}
local span_1 = tracing.start_span(ctx, 'test_1')
-- ...
tracing.finish(opts)¶
Завершить отслеживание сегмента кода и сохранить собранную информацию для выбранного объекта span.
Параметры:
- opts– опции для функции:- timestamp– временная метка в микросекундах с начала эпохи, указывающая время завершения сегмента. Если параметр не указан, используется текущее время;
- error(string) – строка, добавляющая тег ошибки к сегменту.
 
Возвращает: true , иначе false и строку с описанием ошибки.